package com.blackholemax.algorithm.twoPointers;

import java.util.Arrays;

/**
 * 移除指定元素 快慢指针
 */
public class RemoveVal {
    public static int removeVal(int[] nums, int val) {
        int slow = 0; // 慢指针：指向新数组的末尾
        for (int fast = 0; fast < nums.length; fast++) { // 快指针：遍历原数组
            if (nums[fast] != val) { // 找到需要保留的元素
                nums[slow] = nums[fast]; // 赋值给慢指针位置
                slow++; // 慢指针后移，更新新数组长度
            }
        }
        return slow; // 慢指针的值即为新数组长度
    }

    public static void main(String[] args) {
        int[] nums = {0, 1, 0, 3, 12};
        System.out.println(removeVal(nums, 0));
        System.out.println(Arrays.toString(nums));
    }
}
